package com.project_doctor.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.project_doctor.pojo.Role;
import com.project_doctor.pojo.dto.RoleDTO;

import java.util.List;

/**
 * 角色服务接口
 */
public interface RoleService extends IService<Role> {

    /**
     * 查询所有角色及其权限
     * @return 角色列表，包含权限信息
     */
    List<RoleDTO> getRolesWithPermissions();

    /**
     * 根据角色ID查询角色权限
     * @param roleId 角色ID
     * @return 角色信息，包含权限列表
     */
    RoleDTO getRoleWithPermissionsById(Long roleId);

    /**
     * 保存角色及其权限（新增或更新）
     * @param roleDTO 角色数据传输对象
     * @return 操作是否成功
     */
    boolean saveRoleWithPermissions(RoleDTO roleDTO);

    /**
     * 更新角色权限分配
     * @param roleId 角色ID
     * @param permissionIds 权限ID列表
     * @return 操作是否成功
     */
    boolean updateRolePermissions(Long roleId, List<Long> permissionIds);

    /**
     * 删除角色及其权限关联
     * @param roleId 角色ID
     * @return 操作是否成功
     */
    boolean deleteRoleWithPermissions(Long roleId);
}